package com.augurit.smartform.dao;

import java.util.List;

import org.hibernate.Query;
import org.springframework.stereotype.Repository;

import com.augurit.common.base.dao.BaseDao;
import com.augurit.smartform.entity.SmPageDir;
import com.augurit.smartform.web.parser.form.SmPageDirForm;

/**
 * 智能表单页面目录DAO类
 */
@Repository
public class SmPageDirDao extends BaseDao<SmPageDir,Long>{
	/**
	 * 获得所有跟目录
	 * @return
	 */
	public List<SmPageDir> getAllTopDir(){
		String hql="from SmPageDir where parentId is null";
		return this.find(hql, new Object[]{});
	}
	
	/**
	 * 获得子目录下面的数据
	 * @param parentDirId
	 * @return
	 */
	public List<SmPageDir> getChildDir(Long parentDirId){
		String hql="from SmPageDir where parentId=:parentId";
		return this.getSession().createQuery(hql).setLong("parentId", parentDirId).list();
	}
	
	/**
	 * 更新目录ID
	 * @param smPageId
	 * @param dirId
	 * cuigeqiang
	 */
	public void updateParentDirId(Long dirId,Long parentDirId){
		Query query=null;
		if(parentDirId!=null){
			String hql="update SmPageDir set parentId=:parentId where id=:id";
			query=this.getSession().createQuery(hql).setLong("parentId", parentDirId).setLong("id", dirId);
		}else{
			String hql="update SmPageDir set parentId=null where id=:id";
			query=this.getSession().createQuery(hql).setLong("id", dirId);
		}
		query.executeUpdate();
	}
	
	/**
	 * 更新目录ID
	 * @param smPageId
	 * @param dirId
	 * cuigeqiang
	 */
	public void clearParentDirId(Long parentDirId){
		Query query=null;
		String hql="update SmPageDir set parentId=null where parentId=:parentId";
		query=this.getSession().createQuery(hql).setLong("parentId", parentDirId);
		query.executeUpdate();
	}
}
